from django.contrib import admin
from .models import Bicycle

@admin.register(Bicycle)
class BicycleAdmin(admin.ModelAdmin):
    """自行车管理界面配置"""
    
    # 列表页显示的字段
    list_display = [
        'bike_number', 
        'owner_name', 
        'owner_student_id',
        'get_category_display', 
        'get_college_display',
        'class_name',
        'phone_number',
        'created_at'
    ]
    
    # 列表页可点击的字段（用于排序）
    list_display_links = ['bike_number', 'owner_name']
    
    # 列表页过滤器
    list_filter = [
        'category',
        'college', 
        'created_at',
        'purchase_date'
    ]
    
    # 搜索字段
    search_fields = [
        'bike_number',
        'owner_name',
        'owner_student_id',
        'model',
        'class_name',
        'phone_number'
    ]
    
    # 每页显示数量
    list_per_page = 20
    
    # 编辑页面的字段分组
    fieldsets = (
        ('基本信息', {
            'fields': ('bike_number', 'model', 'category', 'color')
        }),
        ('所有人信息', {
            'fields': ('owner_name', 'owner_student_id', 'college', 'class_name', 'phone_number')
        }),
        ('其他信息', {
            'fields': ('purchase_date', 'notes'),
            'classes': ('collapse',)
        }),
    )
    
    # 只读字段
    readonly_fields = ['bike_number', 'created_at', 'updated_at']
    
    # 自动完成字段
    autocomplete_fields = []
    
    # 日期层次导航
    date_hierarchy = 'created_at'
    
    # 保存时自动填充
    prepopulated_fields = {}
    
    # 自定义方法显示
    def get_queryset(self, request):
        """优化查询性能"""
        return super().get_queryset(request).select_related()
    
    # 自定义操作
    actions = ['export_bike_info']
    
    def export_bike_info(self, request, queryset):
        """导出自行车信息"""
        # 这里可以添加导出功能
        self.message_user(request, f'已导出 {queryset.count()} 条自行车信息')
    export_bike_info.short_description = '导出选中的自行车信息'
